import axios from 'axios'
import {API, API_TIMESTAMP, ERR_CODE} from 'api/config'

export const SearchApi = `${API}/search` //  搜索
export const SearchDefaultApi = `${API}/search/default` //  默认搜索关键词
export const SearchHotApi = `${API}/search/hot`

/**
 * 传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户
 * 关键词可以多个 以空格隔开 如 " 周杰伦 搁浅 "( 不需要登录 )
 * @param keywords {string} 关键词
 * @param type {number} 搜索类型 1单曲 | 10专辑 | 100歌手 | 1000歌单 | 1002用户 | 1004MV | 1006歌词 | 1018综合
 * @param offset {number} 页码
 * @param limit {number} 返回数量
 */
export function SearchAsync ({keywords = '', type = 1, offset = 0, limit = 30}) {
  const url = API_TIMESTAMP(SearchApi)
  return axios.get(url, {
    params: { keywords, type, offset, limit }
  }).then(res => {
    return res.code === ERR_CODE ? Promise.resolve(res.result) : Promise.reject(res)
  }).catch(err => {
    return Promise.reject(err)
  })
}

/**
 * 可获取默认搜索关键词
 */
export function SearchDefaultAsync () {
  return axios.get(SearchDefaultApi).then(res => {
    return res.code === ERR_CODE && res.message === null ? Promise.resolve(res.data.realkeyword) : Promise.reject(res)
  }).catch(err => {
    return Promise.reject(err)
  })
}

/**
 * 可获取热门搜索列表
 */
export function SearchHotAsync () {
  return axios.get(SearchHotApi).then(res => {
    return res.code === ERR_CODE ? Promise.resolve(res.result.hots) : Promise.reject(res)
  }).catch(err => {
    return Promise.reject(err)
  })
}
